import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * 杨辉三角  集合法
 * User:岁亮亮
 * Date:2024-01-18
 * TIME:9:17
 */
public class Test {
    public static List<List<Integer>> generate(int n){
        List<List<Integer>> list=new ArrayList<>();
        //先计算第一行的数据  1
        List<Integer> list1=new ArrayList<>();
        list1.add(1);
        list.add(list1);
        //再从第二行开始算起来 i=1;
        for (int i = 1; i < n; i++) {
            //建立一个对象计算当前行的数据
            List<Integer> curlist=new ArrayList<>();
            //加第一个元素1
            curlist.add(1);
            //要计算当前行的数据必须指导上一行i-1的j和j-1的坐标
            List<Integer> prelist=list.get(i-1);
            //从第二个元素算起
            for (int j = 1; j < i; j++) {
                int ret=prelist.get(j)+prelist.get(j-1);
                curlist.add(ret);
            }
            //加最后一个元素
            curlist.add(1);
            list.add(curlist);
        }
        return list;
    }
    public static void main(String[] args) {
        List<List<Integer>> ret=new ArrayList<>();
        ret=generate(5);
        System.out.println(ret);//打印[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
    }
}
